/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.clinicariobamba.Controladores;

import com.clinicariobamba.ReglasNegocio.Clases.Organizacion;
import com.clinicariobamba.ReglasNegocio.Funciones.FuncionesOrganizacion;
import java.io.Serializable;
import java.util.ArrayList;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import org.primefaces.context.DefaultRequestContext;

/**
 *
 * @author xavier
 */
@ManagedBean
@ViewScoped
public class ControladorOrganizacion implements Serializable {

    private Organizacion organizacion;
    private Organizacion organizacionSel;
    private ArrayList<Organizacion> lstOrganizacion;

    public ControladorOrganizacion() {
        this.organizacion = new Organizacion();
        cargarOrganizaciones();
    }

    public Organizacion getOrganizacion() {
        return organizacion;
    }

    public void setOrganizacion(Organizacion organizacion) {
        this.organizacion = organizacion;
    }

    public Organizacion getOrganizacionSel() {
        return organizacionSel;
    }

    public void setOrganizacionSel(Organizacion organizacionSel) {
        this.organizacionSel = organizacionSel;
    }

    public ArrayList<Organizacion> getLstOrganizacion() {
        return lstOrganizacion;
    }

    public void setLstOrganizacion(ArrayList<Organizacion> lstOrganizacion) {
        this.lstOrganizacion = lstOrganizacion;
    }
    
    public Organizacion ObtenerOrganizacion(int id)
    {
       return FuncionesOrganizacion.obtenerOrganizacion(id);
    }

    private void cargarOrganizaciones() {
        try {
            lstOrganizacion = FuncionesOrganizacion.obtenerOrganizaciones();
        } catch (Exception e) {            
            FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR,
                    "Alerta!!", e.getMessage());
            FacesContext.getCurrentInstance().addMessage(null, message);
        }
    }

    public void insertarOrganizacion() {
        try {
            if (FuncionesOrganizacion.insertar(organizacion)) {
                FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO,
                        "Información", "Datos Insertados");
                FacesContext.getCurrentInstance().addMessage(null, message);
                cargarOrganizaciones();
                DefaultRequestContext.getCurrentInstance().execute("wdlgNuevoOrganizacion.hide()");
                organizacion = new Organizacion();
            } else {
                FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR,
                        "Alerta!!", "Error al eliminar");
                FacesContext.getCurrentInstance().addMessage(null, message);
            }
        } catch (Exception e) {            
            FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR,
                    "Alerta!!", e.getMessage());
            FacesContext.getCurrentInstance().addMessage(null, message);

        }
    }
    
    public void editarOrganizacion() {
        try {
            if (FuncionesOrganizacion.modificar(organizacionSel)) {
                FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO,
                        "Información", "Datos Actualizados");
                FacesContext.getCurrentInstance().addMessage(null, message);
                cargarOrganizaciones();
                DefaultRequestContext.getCurrentInstance().execute("wdlgEditarOrganizacion.hide()");
                organizacionSel = new Organizacion();
            } else {
                FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR,
                        "Alerta!!", "Error en la actualizacion");
                FacesContext.getCurrentInstance().addMessage(null, message);
            }
        } catch (Exception e) {
            FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR,
                    "Alerta!!", e.getMessage());
            FacesContext.getCurrentInstance().addMessage(null, message);
        }
    }

    public void eliminarOrganizacion() {
        try {
            if (FuncionesOrganizacion.eliminar(organizacionSel)) {
                FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO,
                        "Información", "Datos Eliminados");
                FacesContext.getCurrentInstance().addMessage(null, message);
                cargarOrganizaciones();
                DefaultRequestContext.getCurrentInstance().execute("wdlgEliminarOrganizacion.hide()");
                organizacionSel = new Organizacion();
            } else {
                FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR,
                        "Alerta!!", "Error al eliminar");
                FacesContext.getCurrentInstance().addMessage(null, message);
            }
        } catch (Exception e) {
            FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR,
                    "Alerta!!", e.getMessage());
            FacesContext.getCurrentInstance().addMessage(null, message);
        }
    }
}
